
//4引入数据请求
import { fetchProduct } from "@/api/cart";

//如果不命名空间 以后访问同名的就会发生冲突
  export default{
    //命名空间
    namespaced: true,
    state:{
        tag:'产品模块store',
        products:[] //1获取产品数据

    },
    //给了命名空间后  这些属性就会加上模块的名字
    mutations:{
        //2设置购物车数据
        SET_PRODUCT(state,payload){
            console.log(state);
            state.products = payload;
        },
        //减少库存    payload接收的是 cart里面actions传来的参数
        DECREMENT_INVENTORY(state,payload){
            // console.log(payload);
            //26 通过id查找目标数据  ！！
            let target = state.products.find(item=>item.id === payload)

            if(target){ //如果有这条数据 库存-1
                target.inventory--
            }
        }
    },
    actions:{
        //3获取购物车数据 api文件就是公用请求 创建文件写方法

        //5定义一个方法
       async FETCH_PRODUCT(context,payload){
        console.log(payload);
       let res =  await fetchProduct() //等待数据完成  请求产品数据
       console.log(res); //触发res  6进入视图页面 components文件下面的product 
       //10 调用SET_PRODUCT 然后传参过去 让mutations修改product数据
       context.commit('SET_PRODUCT',res.data)
        }
    },
    getters:{},

}

